package com.googlecode.imanager.core.base;

import java.util.List;

import com.googlecode.imanager.client.Container;
import com.googlecode.imanager.client.action.Action;
import com.googlecode.imanager.client.bridge.IContainer;
import com.googlecode.imanager.client.bridge.IControl;
import com.googlecode.imanager.client.bridge.IDocument;
import com.googlecode.imanager.client.bridge.IFocusable;
import com.googlecode.imanager.client.bridge.ILabel;
import com.googlecode.imanager.client.bridge.IPanel;
import com.googlecode.imanager.client.bridge.IPicture;
import com.googlecode.imanager.client.bridge.form.IButton;
import com.googlecode.imanager.client.bridge.form.ICheckBox;
import com.googlecode.imanager.client.bridge.form.IComboBox;
import com.googlecode.imanager.client.bridge.form.IInputCheck;
import com.googlecode.imanager.client.bridge.form.IInputControl;
import com.googlecode.imanager.client.bridge.form.IInputList;
import com.googlecode.imanager.client.bridge.form.IInputText;
import com.googlecode.imanager.client.bridge.form.IListBox;
import com.googlecode.imanager.client.bridge.form.IRadioButton;
import com.googlecode.imanager.client.bridge.form.ITextArea;
import com.googlecode.imanager.client.bridge.form.ITextBox;
import com.googlecode.imanager.client.bridge.layout.IScrollBar;
import com.googlecode.imanager.client.bridge.layout.IScrollBox;
import com.googlecode.imanager.client.bridge.layout.IScroller;
import com.googlecode.imanager.client.bridge.style.IStyle;
import com.googlecode.imanager.client.form.CheckGroup;
import com.googlecode.imanager.client.form.WrapMode;
import com.googlecode.imanager.client.layout.Overflow;
import com.googlecode.imanager.client.media.Image;
import com.googlecode.imanager.client.style.PageSettings;
import com.googlecode.imanager.client.style.Style;
import com.googlecode.imanager.client.style.listener.StyleAttribute;
import com.googlecode.imanager.client.style.listener.StyleWrapper;
import com.googlecode.imanager.client.util.ControlState;
import com.googlecode.imanager.client.value.format.Formatter;
import com.googlecode.imanager.core.base.style.ComputedStyle;

/**
 * @author wellsantos@wellsantos.com
 * @since 0.01
 */
public class EmptyControl extends BridgeControl implements IControl,
                                                           IContainer,
                                                           IDocument,
                                                           IPanel,
                                                           ILabel,
                                                           IPicture,
                                                           IFocusable,
                                                           IInputControl,
                                                           IInputText,
                                                           ITextBox,
                                                           ITextArea,
                                                           IButton,
                                                           IInputList<Object>,
                                                           IListBox<Object>,
                                                           IComboBox<Object>,
                                                           IInputCheck,
                                                           ICheckBox,
                                                           IRadioButton,
                                                           IScrollBox,
                                                           IScrollBar,
                                                           IScroller {
    
    private static final ComputedStyle COMPUTED_STYLE = new ComputedStyle();

    public EmptyControl(BridgeApplication bridge) {
        super(bridge);
    }
    
    @Override
    protected void destroy() {
        // nothing to do
    }

    @Override
    public void realign() {
    }

    @Override
    public void refresh() {
    }
    
    @Override
    public void setAction(Action action) {
    }

    @Override
    public void setHint(String hint) {
    }

    @Override
    public void setStyle(Style style) {
    }

    @Override
    public void setVisible(Boolean visible) {
    }

    @Override
    public void setModal(boolean modal) {
    }

    @Override
    public void setTitle(String title) {
    }

    @Override
    public void setOverflowHorz(boolean overflowHorz) {
    }

    @Override
    public void setOverflowVert(boolean overflowVert) {
    }

    @Override
    public void setText(String text) {
    }

    @Override
    public void setImage(Image image) {
    }

    @Override
    public void scrollToPage(int pageNo) {
    }

    @Override
    public void setBounds(int left, int top, int width, int height) {  
    }

    @Override
    public void focus() {
    }

    @Override
    public void setAccessKey(Character accessKey) {
    }

    @Override
    public void setDisabled(Boolean disabled) {
    }

    @Override
    public void setTabIndex(Integer tabIndex) {
    }

    @Override
    public int getSelectionEnd() {
        return 0;
    }

    @Override
    public int getSelectionStart() {
        return 0;
    }

    @Override
    public void setMaxLength(Integer maxLength) {
    }

    @Override
    public void setSelection(int selectionStart, int selectionEnd) {
    }

    @Override
    public void click() {
    }

    @Override
    public void blur() {
    }

    @Override
    public void addItem(int index, Object item) {
    }

    @Override
    public void removeItem(int index) {
    }

    @Override
    public void setFormatter(Formatter<Object> formatter) {
    }

    @Override
    public void setItem(int index, Object item) {
    }

    @Override
    public void setItems(List<Object> items) {
    }

    @Override
    public void setSelectedIndex(int selected) {
    }

    @Override
    public void setChecked(Boolean checked) {
    }

    @Override
    public void setGroup(CheckGroup group) {
    }

    @Override
    public void setOffset(int position) {
    }

    @Override
    public void setOverflow(Overflow overflow) {
    }

    @Override
    public void setLength(int length) {
    }

    @Override
    public int getBarSize() {
        return 0;
    }

    @Override
    public void scrollToRectVisible(int left, int top, int width, int height) {
    }

    @Override
    public Object getHorizontalScroller() {
        return this;
    }

    @Override
    public Object getVerticalScroller() {
        return this;
    }

    @Override
    public void setParent(Container parent) {
    }

    @Override
    public int getCaretPosition() {
        return 0;
    }

    @Override
    public void setCaretPosition(int caretPosition) {
    }

    @Override
    public void setPageSettings(PageSettings pageSettings) {
    }

    @Override
    public IStyle getComputedStyle() {
        return COMPUTED_STYLE;
    }

    @Override
    public void onStateChanged(ControlState state) {
    }

    @Override
    public <T> void onStyleAttributeChanged(StyleWrapper styleWrapper,
            StyleAttribute<T> attribute, T attributeValue) {
    }

    @Override
    public void setWantTabKeys(Boolean wantTabKeys) {
    }

    @Override
    public void setWrapMode(WrapMode wrapMode) {
    }

    @Override
    public void transferFocusBackward() {
    }

    @Override
    public void transferFocusForward() {
    }

}
